﻿using System;
using System.Collections.Generic;
using System.IO;
using Sustainalytics.DataLayer.PI;
using Sustainalytics.Entities.ProductInvolvement;
using Sustainalytics.ClientDW.Entities;
using static Sustainalytics.Utils.AssessementList;

namespace Sustainalytics.ProductInvolvement.BL
{
    public interface IProductInvolvementBussinesLogic
    {
        ProductInvolvementData ReadCompanyAssessment(List<int> userUniverseIds, List<string> claimedIndicators, Guid companyId);

        IEnumerable<ProductInvolvementFramework> ReadPIIndicators();

        CorporateData GetCorporateDataByCompanyId(Guid companyId);

        IEnumerable<ProductInvolvementData> ReadCompanyAssessment(int skip, int take, string sort, bool sortascending);

        IEnumerable<CompanyList> ReadCompanyAssessmentShortReport(ProductInvolvementDataListFilters filters, List<int> userUniverseIds, List<string> claimedIndicators, int skip, int take, string[] orderBy = null, bool orderByAsc = true);
        long ReadCompanyAssessmentShortReportCount(ProductInvolvementDataListFilters filters, List<int> userUniverseIds, List<string> claimedIndicators);

        IList<ProductInvolvementCategory> GetIndicatorCategories(string piSymbol);

        Guid GetTemplateCriteriaIdByPISymbol(string piSymbol);
    }   
}

